﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SRP_LibBusinessRules;
using SRPCENTRIA.Code;
using SRP_LibBusinessEntity;

namespace SRPCENTRIA.ws_appPrivada
{
    public partial class wProveedorEstable : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["Usuario"] != null)
                {
                    EUsuario usuario = (EUsuario)Session["Usuario"];
                    ((Label)Master.FindControl("lblusuario")).Text = usuario.VUSU_NOMBRES;
                }
                if (Request.QueryString["idproveedor"] == null)
                {
                    Response.Redirect("wBusqProveedor.aspx?solicitud=" + Constanst.Solicitud_ProveedorEstable);
                }
                string identificacion = Request.QueryString["idproveedor"].ToString();
                CargarHistoricoEstados(identificacion);
            }
        }

        #region Custom Methods

        private void CargarHistoricoEstados(string identificacion) 
        {
            NProveedor proveedor = new NProveedor();
            System.Data.DataTable dt = proveedor.HistoricoEstadosProveedor(identificacion);
            System.Data.DataView dv = new System.Data.DataView(dt, "", "IFLU_ID_ESTADO ASC", System.Data.DataViewRowState.CurrentRows);
            if (dt.Rows.Count > 0) 
            {
                txttipodocumento.Text = dt.Rows[0].ItemArray[dt.Columns.IndexOf("NomTipIdentificacion")].ToString();
                txtnumerodocumento.Text = dt.Rows[0].ItemArray[dt.Columns.IndexOf("NumTipIdentificacion")].ToString();
                txtnombre.Text = dt.Rows[0].ItemArray[dt.Columns.IndexOf("Nombres")].ToString();
                txtemail.Text = dt.Rows[0].ItemArray[dt.Columns.IndexOf("Email")].ToString();
            }
            gvultimosmovimientos.DataSource = dv;
            gvultimosmovimientos.DataBind();

            //Personalizacion de los Botones
            int estadoproveedor = int.Parse(dt.Rows[0].ItemArray[dt.Columns.IndexOf("id")].ToString());
            if (estadoproveedor == Constanst.ProveedorAceptado) { btnNoEstable.Enabled = false; btnEstable.Enabled = true; }
            if (estadoproveedor == Constanst.ProveedorEstable) { btnNoEstable.Enabled = true; btnEstable.Enabled = false; }

        }

        private void    Estable(int estado, string obs, string identificacion) 
        {
            NProveedor proveedor = new NProveedor();
            //NFormatCorreo formatocorreo = new NFormatCorreo();
            //System.Data.DataTable dtformatocorreo = formatocorreo.MostrarFormato(3);
            //string asunto = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DESCRIPCION_CORREO")].ToString();
            //string body = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DETALLE_CORREO")].ToString();

            //Util.EnviarCorreo(txtemail.Text, asunto, body);
            proveedor.ProveedorEstableNoEstable(estado, obs, identificacion);
            CargarHistoricoEstados(identificacion);
        }

        private void NoEstable(int estado, string obs, string identificacion)
        {
            NProveedor proveedor = new NProveedor();
            //NFormatCorreo formatocorreo = new NFormatCorreo();
            //System.Data.DataTable dtformatocorreo = formatocorreo.MostrarFormato(2);
            //string asunto = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DESCRIPCION_CORREO")].ToString();
            //string body = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DETALLE_CORREO")].ToString();

            //Util.EnviarCorreo(txtemail.Text, asunto, body);
            proveedor.ProveedorEstableNoEstable(estado, obs, identificacion);
            CargarHistoricoEstados(identificacion);
        }

        #endregion

        protected void btnNoEstable_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtObservacion.Text.Trim() == "")
                {
                    EscribirScript("Ingrese alguna Observación antes de continuar");
                    return;
                }
                else
                {
                    NoEstable(Constanst.ProveedorAceptado, txtObservacion.Text, txtnumerodocumento.Text);
                    txtObservacion.Text = string.Empty;
                    ScriptRedirect("El proveedor se Regreso al estado Aprobado", "2");
                    //EscribirScript("El proveedor se Regreso al estado Aprobado");
                    //Response.Redirect("wBusqProveedor.aspx?solicitud=" + Constanst.Solicitud_ProveedorEstable);
                }
                
            }
            catch (Exception ex)
            {
                EscribirScript("Ocurrió un error en el Proceso");
            }
        }

        protected void btnEstable_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtObservacion.Text.Trim() == "")
                {
                    EscribirScript("Ingrese alguna Observación antes de continuar");
                    return;
                }
                else
                {
                    Estable(Constanst.ProveedorEstable, txtObservacion.Text, txtnumerodocumento.Text);
                    txtObservacion.Text = string.Empty;
                    ScriptRedirect("Se actualizó el estado el Proveedor a Estable", "2");
                    //EscribirScript("Se actualizó el estado el Proveedor a Estable");
                    //Response.Redirect("wBusqProveedor.aspx?solicitud=" + Constanst.Solicitud_ProveedorEstable);
                }
               
            }
            catch (Exception ex)
            {
                EscribirScript("Ocurrió un error en el Proceso");
            }
        }
    }
}